package p2plending.data;

import java.sql.*;

public class ConnectionManager {
	private static ConnectionManager cm;
	private Driver dBDriver = null;
	private static final String dBUri = "jdbc:mysql://127.0.0.1:3306/p2plending";
	private static final String driverName = "com.mysql.jdbc.Driver";
    private static final String password = "";
    private static final String username = "root";
	
	private ConnectionManager(){
		try{
			dBDriver= (Driver) Class.forName(driverName).newInstance();
			DriverManager.registerDriver(dBDriver);
		}catch (Exception e){
			System.err.println("Unable to register JDBC Driver");
			e.printStackTrace();
		}
	}
	
	public static synchronized ConnectionManager getInstance(){
		if(cm==null){
			cm= new ConnectionManager();
		}
		return cm;
	}
	
	public Connection checkOut(){
		Connection conn = null;
		try{
			conn = DriverManager.getConnection(dBUri, username, password);
		}catch (Exception e){
			System.err.println("Unable to open a new JDBC connection");
			e.printStackTrace();
		}
		return conn;
	}
	
	public void checkIn (Connection conn){
		try{
			conn.close();
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
	
	protected void finalize(){
		System.out.println("Llamando a finalize de ConnectionManager");
		try{
			DriverManager.deregisterDriver(dBDriver);
		}catch (SQLException e){
			System.err.println("Unable to deregister JDBC driver");
			e.printStackTrace();
		}
	}
}